The present invention relates generally to an anti-virus system and method, and more particularly, to a system and method for scanning e-mail or content available for download and certifying that the data is free of known viruses.
A huge surge in computer viruses has occurred in the last decade. Computer viruses have gone from an academic curiosity to a persistent, worldwide problem. Today, viruses affect vast numbers of computers in locations throughout the world. A computer virus is generally a manmade destructive computer program or code that is loaded onto a computer system without the knowledge of the user. The computer virus is often a self-replicating program containing code that explicitly copies itself and can infect other programs by modifying them or their environment. Even a simple virus can be dangerous as the virus can quickly use a large portion of the available memory and possibly bring down the computer system.
Viruses can be written for, and spread on, virtually any computing platform. A virus can infect, or become resident in almost any software component, including an application, operating system, system boot code, or device driver. Computer viruses spread by attaching themselves to other programs (e.g., word processing or spreadsheet applications) or to a boot sector of a disk. When an infected file is activated or executed, or when the computer is started from an infected disk, the virus is also executed and attempts to infect other files. Since a virus is software code, it can be transmitted along with any legitimate software that enters the computer environment. Some viruses are capable of transmitting themselves across networks and bypassing security systems. For example, a virus can spread to files on a local area network (LAN) based file server, and from there to other client systems attached to the server. Similarly, systems that run programs from wide area network (WAN) file servers can become infected if the programs on the server are susceptible to infection. In the networked world of the Internet, viruses can rapidly spread.
The term virus generally refers to any destructible or harmful program or code that attempts to hide its possibly malicious function or tries to spread onto as many computers as possible. One common type of virus is a macro virus which is encoded as a macro embedded in a document. Many applications support macro languages which allow the user to embed a macro in a document and have the macro execute each time the document is opened. Once a computer system is infected with a macro virus, the virus can embed itself in all future documents created with the associated application.
Other common viruses include a boot sector virus, which replaces the computer system's master boot record with its own code, a polymorphic virus, which produces varied but operational copies of itself, a Trojan horse, which masquerades as a legitimate software program, and a worm, which can replicate itself and use memory but cannot attach itself to other programs.
Many anti-virus programs have become commercially available for protection against viruses. There are three main types of anti-virus software: activity monitors, integrity checkers, and scanners. Activity monitoring programs attempt to prevent infection before it happens by looking for virus type activity, such as attempts to reformat a disk. Integrity checkers compute a small checksum or hash value for files which are presumably uninfected, and later compare newly calculated values with the original ones to see if the files have been modified. These programs catch unknown viruses as well as known ones. Integrity checkers may be called to check entire disks or they may be resident, checking each program that is about to be executed.
Scanners are the most widely used type of anti-virus program. Virus scanners generally operate in batch mode, scanning all files on a system, hard disk, or floppy disk, when requested by the user, or at set intervals. They look for known viruses by searching disks and files for scan strings or patterns. A scanner may be designed to examine specified disks or files on demand, or it may be resident, examining each program that is about to be executed. Most scanning programs include an update feature that allows the anti-virus program to download profiles of new viruses from the Internet or network resources so that the program can check for new viruses soon after they are discovered. Most scanners also include virus removers which are operable to clean infected files. One example of an anti-virus scanner is McAfee's VSHIELD brand anti-virus scanner.
Viruses are often spread over networks through e-mails or other content received at a computer. Once a virus has infected the computer it is often sent out to e-mail addresses listed in a user's personal address list without the user's knowledge. Thus, even e-mail received by a trusted sender may contain a virus. A user may also download content from a web site hosted by an unknown entity. This content may also contain viruses. In some cases the received e-mail or content may be scanned using one of the methods previously described before the user accesses the data. However, this is often time consuming and in some cases the user may inadvertently open a file without first checking for viruses. Furthermore, the recipient of the data may not have anti-virus software installed on his computer or the anti-virus database used by the software may not be up to date.
There is, therefore, a need for a system and method for certifying that received data is virus free so that an e-mail recipient or other user is reassured that documents are safe to open and do not require virus scanning.